package com.itce.arco.test;

public class test3 {
    public static void main(String[] args) {
        int[] ints = {1, -3, 4, 7, 0, 9, -3, 4, 5,1};
        int i = maxSubArray(ints);
        System.out.println(i);
    }
    public static int maxSubArray(int[] nums) {
        int max = nums[0];
        //动态规划
        int[] arr = new int[nums.length];//定义一个相同长度的数组，作用是存储前n项的连续子数组最大值
        arr[0] = nums[0];//当数组中只有一个数时，第一项就是最大值。
        for(int i = 1;i < nums.length;i++){
            arr[i] = nums[i];
            if(arr[i-1]>0){
                arr[i] += arr[i-1];
            }
            max = Math.max(max, arr[i]);
        }
        return max;
    }
}
